package com.xinsoft.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xinsoft.entity.dto.CusDeviceBreakdownDTO;
import com.xinsoft.entity.dto.CusDeviceBreakdownPageParam;
import com.xinsoft.entity.dto.CusRepaireDTO;
import com.xinsoft.entity.po.CusDeviceBreakdown;
import com.xinsoft.entity.vo.CusDeviceBreakdownVo;
import com.xinsoft.entity.vo.CusRepaireVo;

import java.util.List;

/**
* @author hsm
* @description 针对表【cus_device_breakdown(设备故障)】的数据库操作Service
* @createDate 2023-06-19 16:05:54
*/
public interface CusDeviceBreakdownService extends IService<CusDeviceBreakdown> {


    /**
     * 方法描述: [查询维修管理分页列表]
     * 初始作者: hsm
     * 创建时间:  2023
     * 开始版本:
     * =================================================
     * 修改记录：
     * 修改作者 日期 修改内容>
     * ================================================
     * param [param]
     * return CusDeviceBreakdownVo>
     */
    IPage<CusDeviceBreakdownVo> findPageListByParam(CusDeviceBreakdownPageParam param);

    /**
     * 方法描述: [添加维修管理]
     * 初始作者: hsm
     * 创建时间:  2023
     * 开始版本:
     * =================================================
     * 修改记录：
     * 修改作者 日期 修改内容>
     * ================================================
     * param [cusDeviceBreakdown]
     * return com.socks.zhhc.core.system.user.entity.CusDeviceBreakdown
     */
    CusDeviceBreakdown addCusDeviceBreakdown(CusDeviceBreakdownDTO cusDeviceBreakdownDTO);

    /**
     * 方法描述: [添加维修管理]
     * 初始作者: hsm
     * 创建时间:  2023
     * 开始版本:
     * =================================================
     * 修改记录：
     * 修改作者 日期 修改内容>
     * ================================================
     * param [cusDeviceBreakdown]
     * return CusDeviceBreakdown
     */
    CusDeviceBreakdown editCusDeviceBreakdown(CusDeviceBreakdownDTO cusDeviceBreakdownDTO);

    /**
     * 方法描述: [删除维修管理信息]
     * 初始作者: hsm
     * 创建时间:  2023
     * 开始版本:
     * =================================================
     * 修改记录：
     * 修改作者 日期 修改内容>
     * ================================================
     * param [ids]
     * return java.lang.Boolean
     */
    void del(List<Integer> ids);

    /**
     * 方法描述: [获取维修管理]
     * 初始作者: hsm
     * 创建时间:  2023/04/20
     * 开始版本:
     * =================================================
     * 修改记录：
     * 修改作者 日期 修改内容>
     * ================================================
     * param [sysClient]
     * return CusDeviceBreakdownVo
     */
    CusDeviceBreakdownVo getCusDeviceBreakdown(Integer id);

    void changeStatus(Integer breakDownId,
                      Integer repairStatus,
                      Integer repairRecordStatus,
                      Integer repairUserId);

    void submitDeal(CusRepaireDTO cusRepaireDTO);

    CusRepaireVo getRepairDetailByBreakDownId(Integer breakdownId);
}
